<html>
<body>
报告对 <code>equals()</code>、<code>compareTo()</code> 或比较一个对象是否与自身相等的类似方法的调用。
这些方法的方法约定指定了此类调用将始终为 <code>equals()</code> 返回 <code>true</code> 或为 <code>compareTo()</code> 返回 <code>0</code>。
该检查还会检查对 <code>Objects.equals()</code>、<code>Objects.deepEquals()</code>、<code>Arrays.equals()</code>、<code>Comparator.compare()</code>、测试框架（JUnit、TestNG、AssertJ）的 <code>assertEquals()</code> 方法、<code>Integer.compare()</code>、<code>Integer.compareUnsigned()</code> 以及类似方法的调用。
<p>
  请注意，在极少数情况下，该检查可能会报告返回 false 的 <code>equals()</code> 调用，因为虽然两边的表达式相同，但它们会生成单独的对象，并且会在引用上而不是在内容上执行比较。 
  最简单的示例是 <code>new Object().equals(new Object())</code>。 无论如何，此类调用都很可疑，而且可能具有其他意图。
</p>
<p><b>示例：</b></p>
<pre><code>
  class Foo {
    boolean foo(Object o) {
        return o.equals(o); // 警告
    }

    boolean bar(String[] ss) {
        return Arrays.equals(ss, ss); // 警告
    }
}
</code></pre>
<!-- tooltip end -->
</body>
</html>